package appli;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class GestionArguments {

	private List<String> args = null;

	private int nbArgsMin;

	private int nbArgsMax;

	public GestionArguments(String[] params, int nbArgsMin, int nbArgsMax) {
		args = new ArrayList<String>();
		this.nbArgsMin = nbArgsMin;
		this.nbArgsMax = nbArgsMax;
		for (int i = 0; i < params.length; i++) {
			args.add(params[i]);
		}
	}

	public String toString() {
		StringBuffer sb = new StringBuffer("ARGUMENTS\n");
		for (int i = 0; i < args.size(); i++) {
			sb.append("[" + i + "] : " + args.get(i) + "\n");
		}
		return sb.toString();
	}

	public int getNbArguments() {
		return args.size();
	}

	public boolean hasValifNbArguments() {
		if (getNbArguments() >= nbArgsMin && getNbArguments() <= nbArgsMax) {
			return true;
		} else {
			return false;
		}
	}

	public int getNbArgsMin() {
		return nbArgsMin;
	}

	public void setNbArgsMin(int nbArgsMin) {
		this.nbArgsMin = nbArgsMin;
	}

	public int getNbArgsMax() {
		return nbArgsMax;
	}

	public void setNbArgsMax(int nbArgsMax) {
		this.nbArgsMax = nbArgsMax;
	}

	public boolean containsArgs(String arg) {
		for (int i = 0; i < args.size(); i++) {
			if (args.get(i).equalsIgnoreCase(arg)) {
				return true;
			}
		}
		return false;
	}

	public boolean containsDirectoryPath() {
		File dir = null;
		for (int i = 0; i < args.size(); i++) {
			try {
				dir = new File(args.get(i));
				if (dir.exists() && dir.isDirectory()) {
					return true;
				}
			} catch (Exception e) {
			}
		}
		return false;
	}

	public File getFirstDirectoryPath() {
		File dir = null;
		for (int i = 0; i < args.size(); i++) {
			try {
				dir = new File(args.get(i));
				if (dir.exists() && dir.isDirectory()) {
					return dir;
				}
			} catch (Exception e) {
			}
		}
		return dir;
	}
}
